Strongly Typed Views এবং Model Binding

Microsoft Technologies - ডট নেট কোর (Dot.Net Core) ভিউ এবং Razor Pages (Views and Razor Pages) |
232
232

Strongly Typed Views এবং Model Binding দুটি গুরুত্বপূর্ণ ধারণা যা ASP.NET Core MVC অ্যাপ্লিকেশন ডেভেলপমেন্টে ব্যবহার করা হয়। এই দুটি কনসেপ্ট কোডের মান বজায় রাখতে, ডেটার মধ্যে নির্ভুলতা নিশ্চিত করতে এবং ডেভেলপমেন্টকে আরও কার্যকরী ও নিরাপদ করতে সহায়ক।


Strongly Typed Views

Strongly Typed Views বলতে এমন ভিউকে বোঝায়, যা একটি নির্দিষ্ট Model (মডেল) বা DTO (Data Transfer Object) কে ব্যবহার করে। এর মানে হলো, ভিউটি শুধু একটি নির্দিষ্ট ডেটা টাইপকে রেন্ডার করতে পারে, এবং এটি সেই মডেলের সকল প্রোপার্টি এবং মেথড অ্যাক্সেস করতে সক্ষম।

ASP.NET Core MVC তে Strongly Typed Views ব্যবহার করার মাধ্যমে:

  1. Compile-time checking: মডেলটির সকল প্রোপার্টি ভিউতে ব্যবহৃত হওয়া নিশ্চিত করা যায়। ভুল প্রোপার্টি বা টাইপের ভুল ব্যবহারের ফলে কম্পাইল টাইমে ত্রুটি পাওয়া যায়, যা ডেভেলপমেন্টকে আরও নিরাপদ ও নির্ভুল করে।
  2. IntelliSense: যখন ভিউতে মডেল ব্যবহার করা হয়, তখন ভিউতে প্রপার্টি অ্যাক্সেস করতে IntelliSense সুবিধা পাওয়া যায়, যা ডেভেলপারদের দ্রুত কোড লেখার ক্ষেত্রে সহায়তা করে।
  3. Type Safety: এই পদ্ধতিতে ডেটা টাইপের নিরাপত্তা নিশ্চিত করা যায়। ভিউতে সঠিক ডেটা টাইপ প্রদান করতে হয়, যার ফলে অ্যাপ্লিকেশনে ডেটা প্রোসেসিংয়ে ত্রুটি কমে।

Strongly Typed View তৈরি করা

Strongly Typed View তৈরি করতে, প্রথমে একটি মডেল তৈরি করতে হয়। উদাহরণস্বরূপ, একটি Product মডেল তৈরি করা যেতে পারে:

public class Product
{
    public int Id { get; set; }
    public string Name { get; set; }
    public decimal Price { get; set; }
}

এরপর, ভিউতে এই মডেলটি ব্যবহার করতে হবে। নিচে একটি উদাহরণ দেওয়া হলো যেখানে Product মডেলটি ব্যবহার করা হয়েছে:

@model Product

<h1>Product Details</h1>

<p>Product Id: @Model.Id</p>
<p>Product Name: @Model.Name</p>
<p>Product Price: @Model.Price</p>

এখানে, @model Product নির্দেশ করে যে এই ভিউটি Product মডেলকে ব্যবহার করবে। মডেলের প্রোপার্টিগুলো অ্যাক্সেস করতে @Model ব্যবহার করা হয়।


Model Binding

Model Binding একটি প্রক্রিয়া, যার মাধ্যমে HTTP রিকোয়েস্ট (যেমন: ফর্ম ডেটা, কুয়েরি স্ট্রিং, URL প্যারামিটার ইত্যাদি) অ্যাক্সেস করে তা মডেল অবজেক্টে রূপান্তর করা হয়। এটি ডেটা ফর্ম্যাটিং, টাইপ কনভার্সন এবং ভ্যালিডেশন প্রক্রিয়ার দায়িত্ব পালন করে। Model Binding এর মাধ্যমে ডেভেলপাররা HTTP রিকোয়েস্টে পাঠানো ডেটা খুব সহজেই মডেল ক্লাসে মাইগ্রেট করতে পারেন।

ASP.NET Core MVC তে Model Binding এর সাহায্যে:

  1. Automatic Binding: ফর্ম ডেটা বা কুয়েরি প্যারামিটারগুলো স্বয়ংক্রিয়ভাবে মডেল প্রপার্টিগুলোর সাথে ম্যাচ করে।
  2. Complex Types: শুধু প্রাথমিক ডেটা টাইপ নয়, এমনকি কমপ্লেক্স টাইপও (যেমন: ক্লাস, লিস্ট ইত্যাদি) মডেল বাইনডিংয়ের মাধ্যমে ইনপুট হিসেবে গ্রহণ করা যায়।
  3. Validation: মডেল বাইনডিংয়ের সাথে ভ্যালিডেশন যোগ করা যায়, যা ব্যবহারকারী ইনপুটকে যাচাই করতে সহায়তা করে।

Model Binding উদাহরণ

ধরা যাক, একটি Product মডেল রয়েছে এবং একটি ফর্মের মাধ্যমে এই মডেলটির ডেটা পাঠানো হচ্ছে। নিচে উদাহরণ দেওয়া হলো:

  1. প্রথমে, Product মডেল তৈরি করা হবে:
public class Product
{
    public int Id { get; set; }
    public string Name { get; set; }
    public decimal Price { get; set; }
}
  1. একটি Controller অ্যাকশন তৈরি করা হবে যেটি ফর্ম থেকে ডেটা গ্রহণ করবে:
public class ProductController : Controller
{
    [HttpPost]
    public IActionResult Create(Product product)
    {
        if (ModelState.IsValid)
        {
            // এখানে product মডেলটির ডেটা ইনপুট হিসাবে পাওয়া যাবে
            // ডেটাবেসে সংরক্ষণ বা অন্যান্য কার্যকলাপ করা যাবে
            return RedirectToAction("Index");
        }
        return View(product);
    }
}

এখানে, Create অ্যাকশন মেথডে Product মডেলটি ইনপুট হিসেবে আসবে। যখন ফর্মটি সাবমিট হবে, ASP.NET Core স্বয়ংক্রিয়ভাবে ফর্মের ডেটা Product মডেলে বাইনড করে।

  1. Create.cshtml ভিউ ফাইল:
@model Product

<form method="post">
    <div>
        <label for="Id">Product Id</label>
        <input type="text" id="Id" name="Id" value="@Model.Id" />
    </div>
    <div>
        <label for="Name">Product Name</label>
        <input type="text" id="Name" name="Name" value="@Model.Name" />
    </div>
    <div>
        <label for="Price">Product Price</label>
        <input type="text" id="Price" name="Price" value="@Model.Price" />
    </div>
    <button type="submit">Submit</button>
</form>

এখানে, Create.cshtml ফর্মে Product মডেলের প্রপার্টিগুলো ইনপুট হিসেবে পাঠানো হচ্ছে। ফর্মটি সাবমিট হলে, মডেল বাইনডিং প্রক্রিয়ার মাধ্যমে এই ডেটা Product মডেলে রূপান্তরিত হবে এবং কন্ট্রোলারের Create অ্যাকশন মেথডে পাস হবে।


Model Binding এর সুবিধা

  1. Simplifies Data Handling: মডেল বাইনডিং ডেটা হ্যান্ডলিংকে সহজ করে, কারণ HTTP রিকোয়েস্টের ডেটা স্বয়ংক্রিয়ভাবে মডেলে রূপান্তরিত হয়।
  2. Less Boilerplate Code: মডেল বাইনডিং ডেটার জন্য অনেক কোড লিখতে হয় না, এবং ডেটা ইনপুট বা রিটার্ন করার জন্য কম্প্লেক্সিটি কমে।
  3. Improves Security: মডেল বাইনডিং প্রক্রিয়া দিয়ে ইনপুট ডেটা এক্সট্র্যাক্ট করার সময়, ASP.NET Core এর নিরাপত্তা বৈশিষ্ট্যগুলো (যেমন: অটো ভ্যালিডেশন, ইনপুট স্যানিটাইজেশন) কাজ করে, যা অ্যাপ্লিকেশনকে সুরক্ষিত রাখে।

সারাংশ

Strongly Typed Views এবং Model Binding ASP.NET Core MVC অ্যাপ্লিকেশন ডেভেলপমেন্টে গুরুত্বপূর্ণ ভূমিকা রাখে। Strongly Typed Views কোডের নির্ভুলতা নিশ্চিত করে এবং Model Binding সহজভাবে ডেটা অ্যাক্সেস ও প্রক্রিয়াকরণে সহায়তা করে। এই দুটি বৈশিষ্ট্য ব্যবহার করে অ্যাপ্লিকেশনটি আরও টেস্টেবল, রিইউজেবল এবং নিরাপদ করা সম্ভব।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion